home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / NUMBERS.SWG / 0040_Random Numbers.pas < prev    next >
Pascal/Delphi Source File  |  1994-01-27  |  769b  |  42 lines

  1. {
  2. > I would also like some possible suggestions on a good random generator
  3. > function or Procedure that is easy to understand.
  4. }
  5.  
  6.  
  7. { Given }
  8.  
  9. var Seed; {among your globals}
  10.  
  11. { You could try seeding it with: }
  12.  
  13. Procedure Randomise;
  14.  
  15. var
  16.    hour, min, sec, sex100: word;
  17.    root: Longint;
  18.  
  19. begin
  20.  
  21.    GetTime(hour,min,sec,sec100); {from Dos or WinDos unit}
  22.    root := hour shr 1;
  23.    root := root * sec * sec100;
  24.    root := root shr 16;
  25.    Seed := LoWord(root);   {needs WinAPI unit}
  26. end;
  27.  
  28. {And to get a "random" integer in the range 0 to N - 1: }
  29.  
  30. function Random(Target: Integer): Integer;
  31.  
  32. var
  33.    work: Longint;
  34.  
  35. begin
  36.    work := Seed * Seed;
  37.    work := work shr 16;
  38.    Seed := LoWord(work);
  39.    Random := Seed mod Target;
  40. end;
  41.  
  42.